package com.amumu.drama.common.modules.delivery.handler;

import com.amumu.drama.common.modules.delivery.dto.DeliveryStatusResp;
import com.amumu.drama.common.modules.delivery.dto.req.DeliveryHandleDTO;
import com.amumu.drama.common.modules.order.dto.OmsOrderDetail;
import com.amumu.drama.model.OmsOrder;

import java.util.List;
import java.util.Map;

/**
 * @author sunzhuang
 * @date 2024/6/27 09:08
 * @slogan 天下风云出我辈, 一入代码岁月催
 * @desc 发货处理器
 */
public interface DeliveryHandler {

    /**
     * 发货渠道
     */
    List<String> type();

    /***
     * 处理发货（开始发货）
     */

    DeliveryStatusResp delivery(Long orderId, OmsOrderDetail orderDetail, DeliveryHandleDTO deliveryHandleDTO);

    /**
     * 回调信息处理
     */
    default DeliveryStatusResp deliveryNotify(Map<String, String> params, String body) {
        return null;
    }

    ;

    /***
     * 轮询查询更新发货状态
     */
    default DeliveryStatusResp pollQueryDeliveryStatus(Long orderId, OmsOrder omsOrder) {
        return null;
    }

    /**
     * 退货
     *
     * @param orderId
     */
    default void refund(Long orderId) {
    }


}
